Інформація про новину
  • Переглядів: 1817
  • Дата: 4-10-2021, 08:23
4-10-2021, 08:23

27. Графічний інтерфейс користувача в Python

Категорія: Інформатика





Попередня сторінка:  26. Об'єкти, їх властивості та методи в ...
Наступна сторінка:   28. Обробники подій в Python

Більшість сучасних програм використовують графічний інтерфейс, тобто організацію взаємодії людини і комп’ютера з використанням графічних елементів керування — віджетів.

Класи Tkinter

Ви вже знаєте, що для створення графічних програм у мові Python застосовується модуль tkinter — бібліотека класів, призначених для побудови інтерфейсу користувача.

Завантаження модуля tkinter: import tkinter або from tkinter import*

Оскільки модуль tkinter містить описи класів графічних компонентів, то кожен елемент керування буде екземпляром одного з цих класів.

Клас Тк

Тк є базовим класом будь-якого застосунка на основі Tkinter. Створимо об’єкт root класу Тк — порожнє вікно програми:

Через змінну root ми можемо керувати атрибутами вікна. Завершити код графічної програми потрібно командою запуску головного циклу обробки подій:

Отже, мінімальний обсяг коду застосунку є таким:

Далі у вікно додаються інші елементи керування.

Створимо порожнє графічне вікно:

Загальні властивості віджетів

Властивості елемента керування визначають, як він виглядає на екрані (наприклад, ширину і висоту, колір тощо). Початкові значення властивостей встановлюються під час створення об’єкта.

Віджети створюються викликом конструктора відповідного класу:

Батьківський віджет — це елемент керування, до якого буде поміщено створений віджет.

Якщо батьківський віджет не задано, то віджет буде розміщено в головному вікні. Далі можуть задаватися значення атрибутів.

Більшість віджетів у Tkinter мають такі властивості, як висота (height), ширина (width), шрифт (font), колір віджета (bg — від англ. background), колір шрифту (fg — від англ. foreground) тощо.

Для задання розташування віджета у вікні використовуються відомі вам методи:

• place(x, у), де параметри х і у задають зміщення елемента по горизонталі й вертикалі відносно верхнього лівого кута вікна;

• раск(), виклик якого розташовує віджети щільно один біля одного.

Про ще один метод для розташування віджетів — grid() — ви дізнаєтесь пізніше. А зараз розглянемо створення елемента керування за його допомогою на прикладі напису — об’єкта класу Label.

Напис містить рядок (або декілька рядків) тексту й застосовується для виведення заголовків, підписів інших елементів інтерфейсу тощо. Отже, головна властивість об’єкта класу Label — text.

Додамо у вікно напис Hello World!.

Методи віджетів

Класи графічних компонентів мають методи, які дозволяють змінювати властивості об’єктів. У PyCharm назву методу можна або ввести з клавіатури, або вибрати зі списку, який відкривається.

Щоб скористатися списком, слід:

1) записати назву об’єкта і поставити крапку;

2) дочекатись появи списку і клацнути назву методу (рис. 27.1).

Кожен клас графічних компонентів має свій набір методів. Разом із тим деякі методи, наприклад такі як pack(), place(), configO, destroyO, є спільними для всіх віджетів.

Конфігурація віджетів задається при створенні, проте й під час виконання програми може виникнути потреба змінити властивості від-жета. Це можна зробити, викликавши метод configO. У дужках при цьому зазначають, яким саме атрибутам які значення слід присвоїти.

Змінимо текст та колір тла напису lab:

Метод destroyO викликається для усунення віджета.

Видалимо об’єкт, на який вказує змінна lab:

З’ясувати, чи видимий об’єкт у вікні, можна за допомогою виклику методу winfo_viewable(). Метод повертає 1, якщо об’єкт видно у вікні, і 0, якщо ні.

Питання для самоперевірки

1. Поясніть, у чому полягає об’єктно-орієнтований підхід при розробці програм із графічним інтерфейсом.

2. Опишіть послідовність дій під час створення вікна програми.

3. Як виконується перший рядок програми у прикладі 2?

4. Поясніть, для чого використовується метод configO.

5. Змініть у вже створеного віджета класу Label значення атрибута text на 'Нове значення'.

6. Поясніть, як усунути зайвий віджет із вікна.

Вправа 27

Створити програму Годинник.

1) Завантажте середовище PyCharm. Створіть Python file із назвою Вправа 27. Створіть вікно програми розмірами 200x100 із заголовком Годинник.

2) Розмістіть у вікні віджет lab класу Label. Задайте атрибуту text значення 'Hello World!1, атрибутам font, bg, fg — на свій розсуд.

3) Додайте команду завантаження модуля datetime для роботи з датою і часом: from datetime import datetime

4) Опишіть функцію clock(), призначену для відображення поточного часу у віджеті lab:

Змінна now після виклику методу datetime.now() вказує на об’єкт з атрибутами hour (години), minute (хвилини), second (секунди), значення яких відповідають поточному часу. У тілі функції сІоск() заголовок напису змінюється рядком, утвореним із цих значень.

В основній програмі запишіть команду виклику функції dock: clock().

Запустіть програму на виконання, переконайтеся, що годинник працює (рис. 27.2).

5) Запрограмуйте зміну кольору фону вікна щосекунди. До тіла функції clock() додайте оператори:

6) Додайте до вікна об’єкт Iab1 класу Label. Запрограмуйте виведення на нього назви кольору фону вікна. Збережіть проект. Випробуйте програму.

Комп’ютерне тестування

Виконайте тестове завдання 27 із автоматичною

перевіркою результату.

 

Це матеріал з підручника Інформатика 8 клас Бондаренко (2021)

 




Попередня сторінка:  26. Об'єкти, їх властивості та методи в ...
Наступна сторінка:   28. Обробники подій в Python



^